package abs.web.jsf;

import abs.dao.CompaniasDAO;
import abs.dao.ProveedoresDAO;
import abs.dao.TipoProveedoresDAO;

import abs.domain.Companias;
import abs.domain.Proveedores;
import abs.domain.TipoProveedores;

import abs.service.TipoProveedoresService;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import org.springframework.transaction.annotation.Transactional;

/**
 * Spring Component that handles CRUD requests for TipoProveedores entities
 * 
 */
@Scope("session")
@Component("TipoProveedoresComponent")
public class TipoProveedoresComponentImpl implements TipoProveedoresComponent {

	/**
	 * Data type variable that provides CRUD operations for TipoProveedores entities
	 * 
	 */
	private TipoProveedores tipoproveedores;

	/**
	 * DAO injected by Spring that manages Companias entities
	 * 
	 */
	private Companias companias;

	/**
	 * DAO injected by Spring that manages Proveedores entities
	 * 
	 */
	private Proveedores proveedoreses;

	/**
	 * DAO injected by Spring that manages Companias entities
	 * 
	 */
	@Autowired
	private CompaniasDAO companiasDAO;

	/**
	 * DAO injected by Spring that manages Proveedores entities
	 * 
	 */
	@Autowired
	private ProveedoresDAO proveedoresDAO;

	/**
	 * DAO injected by Spring that manages TipoProveedores entities
	 * 
	 */
	@Autowired
	private TipoProveedoresDAO tipoProveedoresDAO;

	/**
	 * Service injected by Spring that provides CRUD operations for TipoProveedores entities
	 * 
	 */
	@Autowired
	private TipoProveedoresService tipoProveedoresService;

	/** 
	 */
	public TipoProveedoresComponentImpl() {
	}

	/**
	 * Create a new TipoProveedores entity
	 * 
	 */
	@Transactional
	public String newTipoProveedores() {
		tipoproveedores = new TipoProveedores();

		return "/jsf/tipoproveedores/createTipoProveedores.xhtml";
	}

	/**
	 * View an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String selectTipoProveedoresProveedoreses(String tipoproveedores_tipopr100cdgo, Integer related_proveedoreses_pr100copr) {
		proveedoreses = proveedoresDAO.findProveedoresByPrimaryKey(related_proveedoreses_pr100copr, -1, -1);
		return "/jsf/tipoproveedores/proveedoreses/viewProveedoreses.xhtml";
	}

	/**
	 * Show all Proveedores entities by TipoProveedores
	 * 
	 */
	@Transactional
	public List<Proveedores> listTipoProveedoresProveedoreses(String tipopr100cdgoKey) {
		return new java.util.ArrayList<Proveedores>(tipoProveedoresDAO.findTipoProveedoresByPrimaryKey(tipopr100cdgoKey).getProveedoreses());
	}

	/**
	 * Delete an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String deleteTipoProveedoresProveedoreses(String tipoproveedores_tipopr100cdgo, Integer related_proveedoreses_pr100copr) {
		tipoproveedores = tipoProveedoresService.deleteTipoProveedoresProveedoreses(tipoproveedores_tipopr100cdgo, related_proveedoreses_pr100copr);

		return "/jsf/tipoproveedores/viewTipoProveedores.xhtml";
	}

	/**
	 * Edit an existing Companias entity
	 * 
	 */
	@Transactional
	public String editTipoProveedoresCompanias(String tipoproveedores_tipopr100cdgo, String related_companias_co000nocia) {
		companias = companiasDAO.findCompaniasByPrimaryKey(related_companias_co000nocia, -1, -1);
		return "/jsf/tipoproveedores/companias/editCompanias.xhtml";
	}

	/**
	 * Delete an existing TipoProveedores entity
	 * 
	 */
	@Transactional
	public String deleteTipoProveedores(String tipopr100cdgoKey) {
		TipoProveedores tipoproveedores = tipoProveedoresDAO.findTipoProveedoresByPrimaryKey(tipopr100cdgoKey);
		tipoProveedoresService.deleteTipoProveedores(tipoproveedores);
		return "/jsf/tipoproveedores/listTipoProveedoress.xhtml";
	}

	/**
	 * Select the child Companias entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteTipoProveedoresCompanias(String tipoproveedores_tipopr100cdgo, String related_companias_co000nocia) {
		companias = companiasDAO.findCompaniasByPrimaryKey(related_companias_co000nocia);

		return "/jsf/tipoproveedores/companias/deleteCompanias.xhtml";
	}

	/**
	 * View an existing Companias entity
	 * 
	 */
	@Transactional
	public String selectTipoProveedoresCompanias(String tipoproveedores_tipopr100cdgo, String related_companias_co000nocia) {
		companias = companiasDAO.findCompaniasByPrimaryKey(related_companias_co000nocia, -1, -1);
		return "/jsf/tipoproveedores/companias/viewCompanias.xhtml";
	}

	/**
	 * Save an existing TipoProveedores entity
	 * 
	 */
	@Transactional
	public String saveTipoProveedores(TipoProveedores tipoproveedores) {
		tipoProveedoresService.saveTipoProveedores(tipoproveedores);
		return "/jsf/tipoproveedores/listTipoProveedoress.xhtml";
	}

	/**
	 * Create a new Proveedores entity
	 * 
	 */
	@Transactional
	public String newTipoProveedoresProveedoreses(String tipoproveedores_tipopr100cdgo) {
		proveedoreses = new Proveedores();

		return "/jsf/tipoproveedores/proveedoreses/createProveedoreses.xhtml";
	}

	/**
	 * Create a new Companias entity
	 * 
	 */
	@Transactional
	public String newTipoProveedoresCompanias(String tipoproveedores_tipopr100cdgo) {
		companias = new Companias();

		return "/jsf/tipoproveedores/companias/createCompanias.xhtml";
	}

	/**
	 * Save an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String saveTipoProveedoresProveedoreses(String tipoproveedores_tipopr100cdgo, Proveedores proveedores) {
		tipoproveedores = tipoProveedoresService.saveTipoProveedoresProveedoreses(tipoproveedores_tipopr100cdgo, proveedores);

		return "/jsf/tipoproveedores/viewTipoProveedores.xhtml";
	}

	/**
	 * Getter for variable TipoProveedores
	 * 
	 */
	@Transactional
	public Companias getCompanias() {
		return companias;
	}

	/**
	 * Getter for variable TipoProveedores
	 * 
	 */
	@Transactional
	public Proveedores getProveedoreses() {
		return proveedoreses;
	}

	/**
	 * Getter for variable TipoProveedores
	 * 
	 */
	@Transactional
	public TipoProveedores getTipoproveedores() {
		return tipoproveedores;
	}

	/**
	 * Select an existing TipoProveedores entity
	 * 
	 */
	@Transactional
	public String selectTipoProveedores(String tipopr100cdgoKey) {
		tipoproveedores = tipoProveedoresDAO.findTipoProveedoresByPrimaryKey(tipopr100cdgoKey);

		return "/jsf/tipoproveedores/viewTipoProveedores.xhtml";
	}

	/**
	 * Select the child Proveedores entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteTipoProveedoresProveedoreses(String tipoproveedores_tipopr100cdgo, Integer related_proveedoreses_pr100copr) {
		proveedoreses = proveedoresDAO.findProveedoresByPrimaryKey(related_proveedoreses_pr100copr);

		return "/jsf/tipoproveedores/proveedoreses/deleteProveedoreses.xhtml";
	}

	/**
	 * Show all TipoProveedores entities
	 * 
	 */
	@Transactional
	public List<TipoProveedores> listTipoProveedoress() {
		return new java.util.ArrayList<TipoProveedores>(tipoProveedoresService.loadTipoProveedoress());
	}

	/**
	 * Save an existing Companias entity
	 * 
	 */
	@Transactional
	public String saveTipoProveedoresCompanias(String tipoproveedores_tipopr100cdgo, Companias companias) {
		tipoproveedores = tipoProveedoresService.saveTipoProveedoresCompanias(tipoproveedores_tipopr100cdgo, companias);

		return "/jsf/tipoproveedores/viewTipoProveedores.xhtml";
	}

	/**
	 * Edit an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String editTipoProveedoresProveedoreses(String tipoproveedores_tipopr100cdgo, Integer related_proveedoreses_pr100copr) {
		proveedoreses = proveedoresDAO.findProveedoresByPrimaryKey(related_proveedoreses_pr100copr, -1, -1);
		return "/jsf/tipoproveedores/proveedoreses/editProveedoreses.xhtml";
	}

	/**
	 * Edit an existing TipoProveedores entity
	 * 
	 */
	@Transactional
	public String editTipoProveedores(String tipopr100cdgoKey) {
		tipoproveedores = tipoProveedoresDAO.findTipoProveedoresByPrimaryKey(tipopr100cdgoKey);

		return "/jsf/tipoproveedores/editTipoProveedores.xhtml";
	}

	/**
	 * Get Companias entity by TipoProveedores
	 * 
	 */
	@Transactional
	public Companias getTipoProveedoresCompanias(String tipopr100cdgoKey) {
		return tipoProveedoresDAO.findTipoProveedoresByPrimaryKey(tipopr100cdgoKey).getCompanias();
	}

	/**
	 * Select the TipoProveedores entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteTipoProveedores(String tipopr100cdgoKey) {
		tipoproveedores = tipoProveedoresDAO.findTipoProveedoresByPrimaryKey(tipopr100cdgoKey);

		return "/jsf/tipoproveedores/deleteTipoProveedores.xhtml";
	}

	/**
	 * Delete an existing Companias entity
	 * 
	 */
	@Transactional
	public String deleteTipoProveedoresCompanias(String tipoproveedores_tipopr100cdgo, String related_companias_co000nocia) {
		tipoproveedores = tipoProveedoresService.deleteTipoProveedoresCompanias(tipoproveedores_tipopr100cdgo, related_companias_co000nocia);

		return "/jsf/tipoproveedores/viewTipoProveedores.xhtml";
	}

}
